<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="UTF-8">
    <title>Sucha's Blog - Archive for October, 2012</title>
    <meta name="generator" content="MarkdownProjectCompositor.lua">
    <meta name="author" content="Sucha">
    <meta name="keywords" content="suchang, programming, Linux, Lua">
    <meta name="description" content="Sucha's blog">
    <link rel="shortcut icon" href="../images/ico.png">
    <link rel="stylesheet" type="text/css" href="../styles/blog.css">
    <link rel="stylesheet" type="text/css" href="../styles/prism.min.css">
    <style id="site_theme"></style>
  </head>
  <body>
    <div id="body">
      <div id="text">
	   <!-- Page published by cmark-gfm begins here --><h1>Sucha's Blog ~ Archive for October, 2012</h1>
<p><a id="p1"></a></p>
<div class="date">12年10月3日 周三 12:42</div>
<h2>XP 下的硬链接工具 Junction</h2>
<p>回到了家，三分钟就搭好了以 Emacs 为中心的工作平台、博客平台，得益于
yun.io 的文件系统层面云，还有我在 github 上的 emacs 配置文件，将基本的东
西下载下来后，几乎不需要什么配置，就可以开工了。</p>
<p>有了这些云，文档的内容毫无疑问是一致的，但是本地操作系统路径等等的问题才
是手头需要立即解决的。</p>
<p>目前我在 mac 以及 xp 下的 emacs 配置文件是一样的了，都是以以 $HOME 目
录为基础的路径，但是 yun.io 在这两个操作系统上的存放位置是不一样的，而且
往往也还有其他的配置文件等等需要分配额外的路径。</p>
<p>mac 下跟 linux 很像，也就是建立一个软链接或者硬链接就好了，xp 下也有工具，
就是 juntion，目前只能在 ntfs 格式的文件系统下建立硬链接。</p>
<p>话说 windows 的软连接这种方式不是在文件系统层面解决的东东，不晓得为啥放到
用户层来解决，不过这么多年来都这样了，也许就是 wintel 的传统了吧。</p>
<p>任何系统有关的东东，暂存在 CategoryLinux 下好了。</p>
<div class="category"><a href="CategoryLinux.html">CategoryLinux</a> / <a href="2012-10.html#p1">Permalink</a> / <a href="https://github.com/lalawue/homepage/discussions/categories/blog" target="_blank">Discussion</a></div>
<!-- date: 2012-10-03T12:42:24+0800 -->
<p><a id="p0"></a></p>
<div class="date">12年10月3日 周三 11:59</div>
<h2>Emacs 的正则表达式替换</h2>
<p>买了 kindle 4 之后，最喜欢的还是纯文本类的格式，6 寸的屏幕显示格式化后的
段落，也还是很方便的，不过即便是如此低的要求，有时还是得花费很多时间来处
理。</p>
<p>就比如昨下了一本 &lt;Programmers At Work&gt;（明显盗版），pdf 版本，转成 txt 后，
段落明显不对，访问式的文体，问答的内容都应该单独分段，可是转换后的文件却
没有。</p>
<p>一开始是想手工替换处理的，后来发现真的是太累了，不靠谱，还用上了 word，我
的 word 太不熟了；其他的纯文本处理工具，应该只有简单的段落拼接功能；想到
了使用正则表达式，不过 xp 下却不知道用什么工具好，想用 Lua，工具也不大，
可是下载完了之后才想到又要编程，比如打开关闭文件什么的，多么麻烦呀；于是
敲定用 emacs，家里的电脑，得重新下载。</p>
<p>虽然对 elisp 说不上生疏，但是一直都在逃避正则表达式，因为若非复杂的文本
处理，学这个东西太不讨好了。</p>
<p>这回硬着头皮上吧，先给出需要处理的文本段落的例子：</p>
<pre><code class="language-example">INTERVIEWER: xxx...SIMONYI: xxx...INTERVIEWER: xxx...SIMONYI: ...
</code></pre>
<p>如上，INTERVIEWER 和 SIMONYI 都要单独分段，手上已有的文本小说处理工具决
计搞不定。</p>
<p>Emacs 的处理过程为，先打开文件，然后 M-x replace-regexp，输入匹配的正则
表达式：</p>
<pre><code class="language-source">&quot;\([A-Z]:\)&quot;
</code></pre>
<p>替换成字符串：</p>
<pre><code class="language-source">&quot;

\1&quot;
</code></pre>
<p>处理后的文本例子是：</p>
<pre><code class="language-example">INTERVIEWER: xxx...

SIMONYI: xxx...

INTERVIEWER: xxx...

SIMONYI: ...
</code></pre>
<p>使用 replace-regexp，替换字符串含有换行符啥的，都是 plain text，单单为这
个问题，也花了不少时间。我是临时绑定一个 C-1 给 (newline)，要不直接RET 就
eval 了，多不靠谱呀。</p>
<p>还有，替换字符串中的 &quot;\1&quot; 就是匹配到的字符串。</p>
<p>最后，POSIX、Lua、Emacs 中的正则表达式标准应该是都不一样的，所以，手边带
着工具书往前走比较靠谱。</p>
<div class="category"><a href="CategoryProgramming.html">CategoryProgramming</a> / <a href="2012-10.html#p0">Permalink</a> / <a href="https://github.com/lalawue/homepage/discussions/categories/blog" target="_blank">Discussion</a></div>
<!-- date: 2012-10-03T11:59:04+0800 -->
<!-- Page published by cmark-gfm ends here -->
  <div id="foot">2004-<script>var d = new
	Date();document.write(d.getFullYear())</script> &copy;
	Sucha. Powered by MarkdownProjectCompositor.
  </div>
  </div><!-- text -->
  <div id="sidebar">
  </div><!-- sidebar -->
  <script src="../js/prism.min.js" async="async"></script>
  <script src="../js/blog_sidebar.js"></script>
  </div> <!-- body -->
</body>
</html>